﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Options.IBClient.Component.Enums;

namespace Options.IBClient.Component
{
    [Serializable()]
    public class OptionComputation
    {
        #region Private Variables
        private int id;
        private string symbol;
        private DateTime dateAdded;
        private DateTime expiry;
        private RightType rightType;
        private decimal strikePrice;
        private decimal askPrice;
        private decimal bidPrice;
        private double delta;
        private double gamma;
        private double vega;
        private double theta;
        #endregion

        #region Constructor
        public OptionComputation()
        {
            symbol = string.Empty;
            dateAdded = DateTime.Now;
            expiry = DateTime.MinValue;
            strikePrice = 0;
            askPrice = 0;
            bidPrice = 0;
            delta = 0;
            gamma = 0;
            vega = 0;
            theta = 0;
        }
        #endregion

        #region Properties
        public int OptionComputationId
        {
            get { return id; }
            set { id = value; }
        }

        public string Symbol
        {
            get { return symbol; }
            set { symbol = value; }
        }

        public DateTime DateAdded
        {
            get { return dateAdded; }
            set { dateAdded = value; }
        }

        public DateTime Expiry
        {
            get { return expiry; }
            set { expiry = value; }
        }

        public decimal StrikePrice
        {
            get { return strikePrice; }
            set { strikePrice = value; }
        }

        public decimal AskPrice
        {
            get { return askPrice; }
            set { askPrice = value; }
        }


        public decimal BidPrice
        {
            get { return bidPrice; }
            set { bidPrice = value; }
        }

        public double Delta
        {
            get { return delta; }
            set { delta = value; }
        }

        public double Gamma
        {
            get { return gamma; }
            set { gamma = value; }
        }

        public double Vega
        {
            get { return vega; }
            set { vega = value; }
        }

        public double Theta
        {
            get { return theta; }
            set { theta = value; }
        }

        public RightType RightType
        {
            get { return rightType; }
            set { rightType = value; }
        }
        #endregion
    }
}
